package models; import java.io.Serializable; import java.util.Calendar; import java.util.Date; import java.util.Observable; import java.util.UUID; public abstract class Account extends Observable implements Serializable{ /** * */ private static final long serialVersionUID = 5815152608580337260L; private String accountId; private double money; private Date creationDate; private Date validUntilDate; public Account(double money){ accountId=UUID.randomUUID().toString(); this.money=money; creationDate=new Date(); Calendar calendar=Calendar.getInstance(); calendar.setTime(creationDate); calendar.add(Calendar.DATE,3*365); validUntilDate=calendar.getTime(); } public String getAccountID(){ return accountId; } public void setAccountSum(double money){ this.money=money; } public double getAccountSum(){ return money; } public Date getcreationDate(){ return creationDate; } public Date getValidUntilDate(){ return validUntilDate; } public abstract String getType(); public abstract boolean sumIsInsufficient(); public abstract void setSumIsInsufficient(boolean notSufficient); public abstract void depositMoney(double money); public abstract void withdrawMoney(double money); public String toString(){ return this.accountId+" "+this.money+" "+String.format(" %tdMonth dd, CCYY ",this.creationDate )+" "+String.format(" %tdMonth dd, CCYY ", this.validUntilDate); } }